<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('modelo');
    }
    public function index()
    {
        $this->load->view('login');
    }
    public function buscarUsuario()
    {
        $codigoUsuario = $this->input->post('codigoUsuario');
        $contrasena = $this->input->post('contrasena');
        if($this->modelo->buscarUsuario($codigoUsuario,$contrasena)->num_rows() > 0)
        {
            $permiso['result']=$this->modelo->buscarUsuario($codigoUsuario,$contrasena)->result();
            foreach($permiso['result'] as $row):
                $codigoTipoUsuario = $row->codigoTipoUsuario;
                $nombres = $row->nombres;
                $apellidoP = $row->apellidoPaterno;
                $apellidoM = $row->apellidoMaterno;
                $digito = $row->digitoVerificador;
                $contrasena = $row->contrasena;
                $estado = $row->codigoEstado;
                $usuario = $row->nombres." ".$row->apellidoPaterno;
            endforeach;
            if($estado == 1){
                $data = array(
                   'username'  => $codigoUsuario,
                   'logged_in' => TRUE,
                   'permiso' => $codigoTipoUsuario
                );

                $this->session->set_userdata($data);
                $cantProy=0;
                if($codigoTipoUsuario == 2):
                    $cantProy = $this->modelo->buscarCodigoProyectos($codigoUsuario)->num_rows();
                    if($cantProy > 0):
                        $datos['Proyectos'] = $this->modelo->buscarCodigoProyectos($codigoUsuario)->result();
                        $i=0;
                        foreach($datos['Proyectos'] as $row):
                            $datos['datosProyecto'.$i] = $this->modelo->buscarProyectos($row->codigoProyecto)->result();
                            $i++;
                        endforeach;
                    endif;
                endif;

                $datos['esJefe'] = 'no';
                if ($this->modelo->esJefeProyecto($codigoUsuario)->num_rows() > 0 )
                    $datos['esJefe'] = 'si';

                $datos['usuario'] = $usuario;
                $datos['permiso'] = $codigoTipoUsuario;
                $datos['cantProy'] = $cantProy;

                $datos['codigoUsuario'] = $codigoUsuario;
                $datos['nombres'] = $nombres;
                $datos['apellidoP'] = $apellidoP;
                $datos['apellidoM'] = $apellidoM;
                $datos['contrasena'] = $contrasena;
                $datos['digito'] = $digito;
                $datos['estado'] = $estado;
                $datos['cUsuarios'] = $this->modelo->todoslosUsuarios()->num_rows();
                $datos['Usuarios'] = $this->modelo->todoslosUsuarios()->result();
                $datos['estadosUsuarios'] = $this->modelo->estadosUsuarios()->result();
                $this->load->view('Proyectos',$datos);
            }
        }
    }
    function tab1()
    {
        if($this->session->userdata('logged_in')==TRUE):
            $codigoUsuario = $this->input->post('codigoUsuario');
            $cantProy=0;
            if ($this->modelo->buscaNoAdmin($codigoUsuario)->num_rows()>0):
                $cantProy = $this->modelo->buscarCodigoProyectos($codigoUsuario)->num_rows();
                if($cantProy > 0):
                    $datos['Proyectos'] = $this->modelo->buscarCodigoProyectos($codigoUsuario)->result();
                    $i=0;
                    foreach($datos['Proyectos'] as $row):
                        $datos['datosProyecto'.$i] = $this->modelo->buscarProyectos($row->codigoProyecto)->result();
                        $i++;
                    endforeach;
                endif;
            endif;
            $datos['cantProy'] = $cantProy;
            $this->load->view("tabs/tab1",$datos);
        else:
            redirect(base_url());
        endif;
    }
    function tab2()
    {
        $codigoUsuario = $this->input->post('codigoUsuario');
        $contrasena = $this->input->post('contrasena');
        if($this->modelo->buscarUsuario($codigoUsuario,$contrasena)->num_rows() > 0)
        {
            $permiso['result']=$this->modelo->buscarUsuario($codigoUsuario,$contrasena)->result();
            foreach($permiso['result'] as $row):
                $codigoTipoUsuario = $row->codigoTipoUsuario;
                $nombres = $row->nombres;
                $apellidoP = $row->apellidoPaterno;
                $apellidoM = $row->apellidoMaterno;
                $digito = $row->digitoVerificador;
                $contrasena = $row->contrasena;
                $estado = $row->codigoEstado;
                $usuario = $row->nombres." ".$row->apellidoPaterno;
            endforeach;
            if($estado == 1)
            {
            
                $datos['permiso'] = $codigoTipoUsuario;
                $datos['codigoUsuario'] = $codigoUsuario;
                $datos['nombres'] = $nombres;
                $datos['apellidoP'] = $apellidoP;
                $datos['apellidoM'] = $apellidoM;
                $datos['contrasena'] = $contrasena;
                $datos['digito'] = $digito;
                $datos['estado'] = $estado;
                $datos['cUsuarios'] = $this->modelo->todoslosUsuarios()->num_rows();
                $datos['Usuarios'] = $this->modelo->todoslosUsuarios()->result();
                $datos['estadosUsuarios'] = $this->modelo->estadosUsuarios()->result();
                $datos['nombreEstadoUsuario'] = $this->modelo->nombreEstadoUsuario($estado)->result();
                $this->load->view('tabs/tab2',$datos);
            }
        }
    }
    function tab3()
    {
        //Debe tener los proyectos donde la persona es jefe de proyecto
        //deben aparecer todos los usuarios que no son Admin ni el mismo jefe de proyecto
        //Se deben auto-cargar los roles que estan en la BD
        if($this->session->userdata('logged_in')==TRUE):
            $codigoUsuario = $this->input->post('codigoUsuario');
            $cantProy=0;
            if ($this->modelo->buscaNoAdmin($codigoUsuario)->num_rows()>0):
                $cantProy = $this->modelo->buscarCodigoProyectos($codigoUsuario)->num_rows();
                if($cantProy > 0):
                    $datos['Proyectos'] = $this->modelo->buscarCodigoProyectos($codigoUsuario)->result();
                    $i=0;
                    foreach($datos['Proyectos'] as $row):
                        $datos['datosProyecto'.$i] = $this->modelo->buscarProyectos($row->codigoProyecto)->result();
                        $i++;
                    endforeach;
                endif;
            endif;
            $datos['roles'] = $this->modelo->buscaRoles2()->result();
            $datos['cantProy'] = $cantProy;
            $datos['usuariosDisponibles'] = $this->modelo->buscaUsuariosDisponibles($codigoUsuario)->result();
            //Estados que deben verificarse, ya que aun no están creados los estados de los grupos
            $datos['estadoGrupo'] =  $this->modelo->estadosUsuarios()->result();
            $this->load->view("tabs/tab3",$datos);
        else:
            redirect(base_url());
        endif;
    }
    function tab4()
    {
        $codigoUsuario = $this->input->post('codigoUsuario');
        $datos['numNoAdmin'] = $this->modelo->buscaNoAdmin($codigoUsuario)->num_rows();
        if($datos['numNoAdmin']>0):
            $datos['NoAdmin'] = $this->modelo->buscaNoAdmin($codigoUsuario)->result();
        endif;
        $datos['estadoProyecto'] = $this->modelo->buscaEstadosProyecto()->result();
        $datos['Proyectos'] = $this->modelo->buscarTodosProyectos()->result();
        $this->load->view('tabs/tab4',$datos);
    }
    function tab5()
    {
        if($this->session->userdata('logged_in')==TRUE):
            $codigoUsuario = $this->input->post('codigoUsuario');
            $this->load->view("tabs/tab5");
        else:
            redirect(base_url());
        endif;
    }
    function tab6()
    {
        if($this->session->userdata('logged_in')==TRUE):
            $codigoAtributo = $this->input->post('codigoAtributo');
            if( $codigoAtributo == "null" ):
                $datos['atributos'] = $this->modelo->consultaAtributos();
                $this->load->view( "tabs/tab6",$datos );
            else:
                $datos['codVal'] = $this->modelo->buscaAtributoValor($codigoAtributo)->result();
                $i=0;
                foreach($datos['codVal'] as $row):
                    $datos['nombreValor'.$i] = $this->modelo->buscaNombreValor($row->codigoValor)->result();
                    $datos['seleccionado'.$i] = 'no';
                    if($this->modelo->atributoAsignado($codigoAtributo,$row->codigoValor)->num_rows() > 0):
                        //significa que están asignados!
                        $datos['seleccionado'.$i] = 'si';
                    endif;
                    $i++;
                endforeach;
                $this->load->view( "tabs/tab6Tabla",$datos );
            endif;
        else:
            redirect(base_url());
        endif;
    }
    function tab6NuevoAtributo()
    {
        $nombre = $this->input->post("nombre");
        if($nombre == 'null')
            $this->load->view('tabs/tab6NuevoAtributo');
        else
        {
            if($this->modelo->buscarNombreAtributos($nombre)->num_rows() > 0)
                $msj = 'Atributo ya existente';
            else
                $msj = '';
            echo json_encode(array('msj'=>$msj));
        }
    }
    function tab7()
    {
        if($this->session->userdata('logged_in')==TRUE):
            $datos['tipoRequisito'] = $this->modelo->buscarTipoRequisito()->result();
            $this->load->view( "tabs/tab7",$datos );
        else:
            redirect(base_url());
        endif;
    }
    function tab7SubTipoRequisitos()
    {
        $datos['subTipoRequisito'] = $this->modelo->buscarSubTipoRequisito($this->input->post('tipoRequisito'))->result();
        $this->load->view( "tabs/tab7SubTipoRequisito",$datos );
    }
    function motivo()
    {
        $codigoUsuario = $this->input->post('codigoUsuario');
        $contrasena = $this->input->post('contrasena');
        if($this->modelo->buscarUsuario($codigoUsuario,$contrasena)->num_rows() > 0)
        {
            $data['result']=$this->modelo->buscarUsuario($codigoUsuario,$contrasena)->result();
            foreach($data['result'] as $row):
                $estado = $row->codigoEstado;
            endforeach;
            if($estado == 2)
                $msj = "Usuario no vigente!";
            if($estado == 3)
                $msj = "Usuario bloqueado!";
        }
        else
        {
            $msj = "Usuario no encontrado!";
        }
        echo json_encode(array("msj"=>$msj));
    }

    function usuarioEspecifico()
    {
        $codigoUsuario =  $this->input->post('codigoUsuario');
        $data['result'] = $this->modelo->buscarEncargado($codigoUsuario)->result();
        foreach($data['result'] as $row):
            $codigoTipoUsuario = $row->codigoTipoUsuario;
            $nombres = $row->nombres;
            $apellidoP = $row->apellidoPaterno;
            $apellidoM = $row->apellidoMaterno;
            $digito = $row->digitoVerificador;
            $contrasena = $row->contrasena;
            $estado = $row->codigoEstado;
        endforeach;
        $datos['codigoUsuario'] = $codigoUsuario;
        $datos['nombres'] = $nombres;
        $datos['apellidoP'] = $apellidoP;
        $datos['apellidoM'] = $apellidoM;
        $datos['contrasena'] = $contrasena;
        $datos['digito'] = $digito;
        $datos['estado'] = $estado;
        $datos['permiso'] = $this->session->userdata('permiso');
        $datos['estadosUsuarios'] = $this->modelo->estadosUsuarios()->result();
        $datos['nombreEstadoUsuario'] = $this->modelo->nombreEstadoUsuario($estado)->result();
        $this->load->view('editarUsuarios/editarUsuarios',$datos);
    }
    function logout()
    {
        $this->session->sess_destroy();
        redirect(base_url());
    }
    function buscaProyecto()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $data['result']=$this->modelo->buscarProyectos($this->input->post('proyecto'))->result();
            $encargado = null;
            foreach($data['result'] as $row)
            {
                $encargado = $row->jefeProyecto;
                $descripcion = $row->descripcion;
            }
            $data['result'] = $this->modelo->buscarEncargado($encargado)->result();
            foreach($data['result'] as $row)
            {
                $encargado = $row->nombres." ".$row->apellidoPaterno;
            }
            echo json_encode(array("encargado"=>$encargado,"descripcion"=>$descripcion));
        }
        else
            redirect(base_url());
    }
    function buscaNick()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $nick = $this->modelo->buscaNick($this->input->post('Nick'));
            echo json_encode(array('nick'=>$nick));
        }
        else
            redirect(base_url());
    }
    function validaRut()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $rut = $this->input->post('RUT');
            $dig = $this->input->post('Digito');
            $valida = "false";
            if ($dig == $this->modelo->validaRut($rut))
            {
                $valida = "true";
                if($this->modelo->buscarEncargado($rut)->num_rows() > 0)
                    $valida = "existe";
            }
            echo json_encode(array('valida'=>$valida));
        }
        else
            redirect(base_url());
    }
    function Ingresar()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $data['codigoUsuario'] = $this->session->userdata('username');
            $data['codigoProyecto'] = $this->input->post('nombreProy');
            $result =  $this->modelo->buscaNombreUsuario($data['codigoUsuario']);
            foreach($result as $row)
                $data['usuario'] = $row->nombres.' '.$row->apellidoPaterno;
            $result = $this->modelo->buscaNombreProyecto2($data['codigoProyecto']);
            foreach($result as $row)
               $data['proyecto']  = $row->nombreProyecto;
            $datos['estados'] = $this->modelo->buscaEstadosRequisitos()->result();
            $datos['tipoRequisito'] = $this->modelo->buscarTipoRequisito()->result();
            $this->load->view('header',$data);
            $this->load->view('Ingresar/content',$datos);
            $this->load->view('footer');
        }
        else
            redirect(base_url());
    }
    function actualizaUsuario()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $codigoUsuario = $this->input->post('Rut');
            $Nombres = $this->input->post('Nombre');
            $aPaterno = $this->input->post('Apaterno');
            $aMaterno = $this->input->post('Amaterno');
            $contrasena = $this->input->post('Clave');
            $estado = $this->input->post('Estado');
            $msj = $this->modelo->actualizaUsuario($codigoUsuario,$Nombres,$aPaterno,$aMaterno,$contrasena,$estado);
            echo json_encode(array("msj"=>$msj));
        }
        else
            redirect(base_url());
    }
    function guardarUsuario()
    {
        $codigoUsuario = $this->input->post('Rut');
        $digito = $this->input->post('Digito');
        $nombres = $this->input->post('Nombre');
        $aPaterno = $this->input->post('Apaterno');
        $aMaterno = $this->input->post('Amaterno');
        $contrasena = $this->input->post('Clave');
        $estado = $this->input->post('Estado');      
        $msj = $this->modelo->guardarUsuario($codigoUsuario,$digito,$nombres,$aPaterno,$aMaterno,$contrasena,$estado);

        echo json_encode(array("msj"=>$msj));
    }
    function crearProyecto()
    {
        $codigoJefeProy = $this->input->post('codigoJefeProy');
        $nombreProy = $this->input->post('nombreProy');
        $descripcionProy = $this->input->post('descripcionProy');
        $estadoProy = $this->input->post('estadoProy');
        //verifico primero que el proyecto no se encuentre ya almacenado... al menos el nombre u.u
        if($this->modelo->buscaNombreProyecto($nombreProy)->num_rows()>0):
            $msj = "existe!";
        else:
            $msj = "ok";
            $this->modelo->crearProyecto($codigoJefeProy,$nombreProy,$descripcionProy,$estadoProy);
            //Se crea el grupo de trabajo por defecto que contiene solo al jefe de proyecto
            //se le asignará al nombre del grupo el mismo nombre del proyecto
            //con el nombre de proyecto y el codigo del jefe de proyecto, busco el codigo del proyecto, ya que el nombre será unico..
            //con eso se genera el grupo, y luego la relación "usuarioGrupo".
            $dataP = $this->modelo->retornaIdProyecto($codigoJefeProy,$nombreProy);
            foreach($dataP as $row):
                $dataG = $this->modelo->crearGrupoDefault($this->generaRandom(),$row->codigoProyecto,$nombreProy);
                foreach($dataG as $row1):
                    $this->modelo->crearUsuarioGrupoDefault($row1->codigoGrupo,$codigoJefeProy,$row->codigoProyecto);
                endforeach;
            endforeach;
        endif;

        echo json_encode(array("msj"=>$msj));
    }
    function generaRandom()
    {
        $val = rand();
        if( $this->modelo->revisaRand($val)->num_rows()>0)
            $val = $this->generaRandom();
        return $val;
    }
    function revisaCodigoGrupo()
    {
        if($this->session->userdata('logged_in') == TRUE)
        {
            $msj = null;
            $codigoGrupo = $this->input->post("codigoGrupo");
            if($this->modelo->revisaCodigoGrupo($codigoGrupo)->num_rows()>0)
            {
                $msj = "existe";
            }
            echo json_encode(array("msj"=>$msj));
        }
        else
            redirect(base_url());
    }
    function guardarUsuarioGrupo()
    {
        $codigoUsuario = $this->input->post('codigoUsuario');
        $codigoGrupo = $this->input->post('codigoGrupo');
        $codigoProyecto = $this->input->post('codigoProyecto');
        $codigoRol = $this->input->post('codigoRol');
        $this->modelo->guardarUsuarioGrupo($codigoUsuario,$codigoGrupo,$codigoProyecto,$codigoRol);
    }
    function guardarGrupo()
    {
        $codigoGrupo = $this->input->post('codigoGrupo');
        $codigoProyecto = $this->input->post('codigoProyecto');
        $nombreGrupo = $this->input->post('nombreGrupo');
        $descripcionGrupo = $this->input->post('descripcionGrupo');
        $idEstado = $this->input->post('idEstado');
        $this->modelo->guardarGrupo($codigoGrupo,$codigoProyecto,$nombreGrupo,$descripcionGrupo,$idEstado);
        echo json_encode(array("msj"=>"ok"));
    }
    function guardarAtributoValor()
    {
        $nombreValor = $this->input->post('valor');
        $nombreAtributo = $this->input->post('atributo');

        $Valores = $this->modelo->buscaNombreValor2($nombreValor);
        $Atributos = $this->modelo->buscarNombreAtributos($nombreAtributo);

        if($Valores->num_rows() == 0)
        {
            $this->modelo->insertaValor($nombreValor);
        }
        if($Atributos->num_rows() == 0)
        {
            $this->modelo->insertaAtributo($nombreAtributo);    
        }

        $Valores = $this->modelo->buscaNombreValor2($nombreValor);
        $Atributos = $this->modelo->buscarNombreAtributos($nombreAtributo);

        foreach($Valores->result() as $row):
            $codigoValores = $row->codigoValor;
        endforeach;
        foreach($Atributos->result() as $row):
            $codigoAtributos = $row->codigoAtributo;
        endforeach;

        /*
         * Pregunto si es que existe la relación que quiero guardar, de no existir
         * la inserto.
         */

        if($this->modelo->buscaAtributoValor2($codigoAtributos,$codigoValores)->num_rows() == 0):
            $this->modelo->insertaAtributoValor($codigoAtributos,$codigoValores);
        endif;

        echo json_encode(array("msj"=>''));
    }
    function actualizarAtributoValor()
    {
        $msj ='';
        $codigoAtributo = $this->input->post('codigoAtributo');
        $codigoValor = $this->input->post('codigoValor');
        $nombreValor = $this->input->post('nombreValor');
        if($nombreValor != ''):
            if($codigoValor == "nuevo")
            {
                //Debo hacer Insert! y crear la relación con el Atributo
                $verificaValor = $this->modelo->buscaNombreValor2($nombreValor);
                if($verificaValor->num_rows()==0): //solo se inserta si no existe!
                    $this->modelo->insertaValor($nombreValor);
                endif;
                $codigoValor = $this->modelo->buscaNombreValor2($nombreValor);
                foreach($codigoValor->result() as $row):
                    $codigoValores = $row->codigoValor;
                endforeach;
                $this->modelo->insertaAtributoValor($codigoAtributo,$codigoValores);
            }
            else
            {
                //Debo actualizar el nombre del atributo, pero la relación que existia se mantiene :)
                $verificaValor = $this->modelo->buscaNombreValor2($nombreValor);
                if($verificaValor->num_rows()==0): //solo se inserta si no existe!
                    $this->modelo->actualizaValor($codigoValor,$nombreValor);
                else:
                    foreach($verificaValor->result() as $row):
                        $codigoValores = $row->codigoValor;
                    endforeach;
                    //Debo Actualizar la tabla atributoValor, SOLO si el valor ya no está
                    // pre asignado en el mismo atributo.
                    if($this->modelo->buscaAtributoValor2($codigoAtributo,$codigoValores)->num_rows() == 0):
                        $this->modelo->actualizaAtributoValor($codigoAtributo,$codigoValor,$codigoValores);
                    endif;
                endif;
                //De todos modos puede ser que edite el campo y le ponga el nombre de un valor que ya existe...
                // lo que radica en ver si existe el nombre antes y actualizar la relación u.u
            }
        endif;
        echo json_encode(array('msj'=>$msj));
    }

    function autocompletaDialog()
    {
        $id_padre = $this->input->post('id_padre');
        
        $result = $this->modelo->buscaRequisito($id_padre)->result();
        foreach ($result as $row):
            $cod_Proyecto_Padre = $row->codigoProyecto;
            $version_Padre = $row->version;
        endforeach;

        echo json_encode(array("id_padre"=>$id_padre,"cod_Proyecto_Padre"=>$cod_Proyecto_Padre,"version_Padre"=>$version_Padre));
    }
    function cargaSelectsDialog()
    {
        $i=0;
        $atributos = $this->modelo->consultaAtributos();
        foreach ($atributos as $row):
            $j=0;
            $datos['codigoAtributo'.$i] = $row->codigoAtributo;
            $nombreAtributos = $this->modelo->buscarNombreAtributos2($row->codigoAtributo)->result();
            foreach($nombreAtributos as $row1):
                $datos['nombreAtributo'.$i] = $row1->nombreAtributo;
            endforeach;
            $atributoValor = $this->modelo->buscaAtributoValor($row->codigoAtributo)->result();
            foreach($atributoValor as $row2):
                $datos['codigoValor'.$i.$j] = $row2->codigoValor;
                $nombreValor = $this->modelo->buscaNombreValor($row2->codigoValor)->result();
                foreach ($nombreValor as $row3):
                    $datos['nombreValor'.$i.$j] = $row3->nombreValor;
                endforeach;
                $j++;
            endforeach;
            $datos['indice2'.$i] = $j;
            $i++;
        endforeach;

        $datos['indice1'] = $i;

        $tipoRequisito = $this->modelo->buscarTipoRequisito()->result();
        $i=0;
        foreach($tipoRequisito as $row):
            $j=0;
            $datos['codigoTipoRequisito'.$i] = $row->codigoTipoRequisito;
            $datos['nombreTipoRequisito'.$i] = $row->nombreTipoRequisito;
            $datos['descripcionTipoRequisto'.$i] = $row->descripcion;
            $subTipoRequisito = $this->modelo->buscarSubTipoRequisito($row->codigoTipoRequisito)->result();
            foreach($subTipoRequisito as $row1):
                $datos['codigoSubTipoRequisito'.$i.$j] = $row1->codigoSubTipoRequisito;
                $datos['nombreSubTipoRequisito'.$i.$j] = $row1->nombreSubTipoRequisito;
                $datos['descripcionSubTipoRequisito'.$i.$j] = $row1->descripcion;
                $j++;
            endforeach;
            $datos['indice4'.$i] = $j;
            $i++;
        endforeach;

        $datos['indice3'] = $i; 

        $this->load->view('Ingresar/selectsDialog',$datos);
    }
    function guardarRequerimiento()
    {
        $codigoRequisito        = $this->generaRandom2();
        $codigoProyecto         = $this->input->post('codigoProyecto');
        $version                = $this->input->post('version');
        $codigoRequisitoPadre   = $this->input->post('codigoRequisitoPadre');
        $codigoProyectoPadre    = $this->input->post('codigoProyectoPadre');
        $versionPadre           = $this->input->post('versionPadre');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');
        $codigoTipoRequisito    = $this->input->post('codigoTipoRequisito');
        $creador                = $this->session->userdata('username');
        $estado                 = $this->input->post('estado');
        $nombreRequisito        = $this->input->post('nombreRequisito');
        $descripcion            = $this->input->post('descripcion');
        if($codigoRequisitoPadre == '0') //Si es 0, significa que es un requisito creado en la raiz!
            $codigoRequisitoPadre = $codigoRequisito;
        $nombreRequisito = substr($nombreRequisito, 4, strlen($nombreRequisito));

        $this->modelo->insertaRequerimiento($codigoRequisito,$codigoProyecto,$version,
            $codigoRequisitoPadre,$codigoProyectoPadre,$versionPadre,$codigoSubTipoRequisito,
            $codigoTipoRequisito,$creador,$estado,$nombreRequisito,$descripcion);

        $codigosAtributo    = $this->input->post('codigosAtributo');
        $codigosValor       = $this->input->post('codigosValor');
        $indice             = $this->input->post('indiceFin');
        
        $i=0;
        $Atributos = array();
        $Valores = array();

        $Atributos = explode('+',$codigosAtributo);
        $Valores   = explode('+',$codigosValor);
        //print_r($Atributos);
        //print_r($Valores);
        //echo $codigoProyecto.' - '.$codigoRequisito;
        for($i=0;$i<$indice;$i++)
        {
            $this->modelo->insertRequisitoAtributoValor($codigoRequisito,$codigoProyecto,$version,$Atributos[$i],$Valores[$i]);
        }
        $cantGrupos     = $this->input->post('cantGrupos');
        $codGrupos      = $this->input->post('codGrupos');
        $cantPersona    = $this->input->post('cantPersona');
        $codPersona     = $this->input->post('codPersona');

        if($cantGrupos > 0): //significa que se asignaron Grupos
            $codigoGrupos = array();
            $codigoGrupos = explode('+',$codGrupos);
            $codigoGrupos = array_unique($codigoGrupos);
            $codigoGrupos = array_values($codigoGrupos);
            for($i=0;$i<sizeof($codigoGrupos);$i++):
                $this->modelo->insertaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto,$version,$codigoGrupos[$i]);
            endfor;
        else: //si no se asignaron, se guardan todos!
            $grupos = $this->modelo->buscaGrupos($codigoProyecto)->result();
            foreach($grupos as $row):
                $this->modelo->insertaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto,$version,$row->codigoGrupo);
            endforeach;
        endif;
        if($cantPersona > 0): //significa que se asignaron Personas
            $codigoPersona = array();
            $codigoPersona = explode('+',$codPersona); //saco el signo + y almaceno en un vector los valores
            $codigoPersona = array_unique($codigoPersona); //saco los valores únicos
            $codigoPersona = array_values($codigoPersona); //genero un nuevo ventor con valores únicos
            for($i=0;$i<sizeof($codigoPersona);$i++):
                $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$codigoPersona[$i]);
            endfor;
            //cuando se agregan personas ... me debo agregar por defecto!
            $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$this->session->userdata('username'));
        else: //si no se asignaron, se guardan todos!
            $usuarios = $this->modelo->buscarUsuarioGrupo($codigoProyecto)->result();
            foreach($usuarios as $row):
                $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$row->codigoUsuario);
            endforeach;
        endif;

        $cantArchivos   = $this->input->post('cantArchivos');
        $urlArchivos    = $this->input->post('urlArchivos');
        $descArchivos   = $this->input->post('descArchivos');

        if($cantArchivos > 1): //se subieron archivos
            $rutaDocumento = array();
            $descripcionDocumento = array();
            $rutaDocumento = explode('+',$urlArchivos);
            $descripcionDocumento = explode('+',$descArchivos);
            for($i=1;$i<$cantArchivos;$i++):
                $codigoDocumento = $this->generaRandom3();
                $this->modelo->insertDocumento($codigoDocumento,$codigoRequisito,$codigoProyecto,$version,$rutaDocumento[$i],$descripcionDocumento[$i]);
            endfor;
        endif;
    }
    function generaRandom3()
    {
        $val = rand();
        if( $this->modelo->revisaRand2($val)->num_rows()>0)
            $val = $this->generaRandom3();
        return $val;
    }
    function generaRandom2()
    {
        $val = rand();
        if( $this->modelo->revisaRand2($val)->num_rows()>0)
            $val = $this->generaRandom2();
        return $val;
    }
    function editarNombreRequisito()
    {
        $nombreRequisito = $this->input->post('nombre');
        $codigoRequisito = $this->input->post('codigoRequisito');
        $nombreRequisito = substr($nombreRequisito, 4, strlen($nombreRequisito));
        $this->modelo->editarNombreRequisito($codigoRequisito,$nombreRequisito);
    }
    function guardaNuevoTipoRequisito()
    {
        $nombre = $this->input->post('nombre');
        $descripcion = $this->input->post('descripcion');
        $this->modelo->guardaNuevoTipoRequisito($nombre,$descripcion);
    }
    function guardaNuevoSubTipoRequisito()
    {
        $nombre = $this->input->post('nombre');
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $descripcion = $this->input->post('descripcion');
        $codigoSubTipoRequisito = $this->generaRandom();
        $this->modelo->guardaNuevoSubTipoRequisito($nombre,$codigoTipoRequisito,$codigoSubTipoRequisito,$descripcion);
    }
    function cargaDivRelacionTipoSubTipoAtributo()
    {
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');

        $nombreTipoRequisito = $this->modelo->buscarNombreTipoRequisito($codigoTipoRequisito)->result();
        foreach ( $nombreTipoRequisito as $row)
            $datos['nombreTipoRequisito'] = $row->nombreTipoRequisito;

        $nombreSubTipoRequisito = $this->modelo->buscarSubTipoRequisito2($codigoSubTipoRequisito)->result();
        foreach ( $nombreSubTipoRequisito as $row)
            $datos['nombreSubTipoRequisito'] = $row->nombreSubTipoRequisito;

        $datos['atributos'] = $this->modelo->consultaAtributos();
        $seleccionados = $this->modelo->consultaAtributosSeleccionados($codigoTipoRequisito,$codigoSubTipoRequisito);
        
        if($seleccionados->num_rows() >0){
            $i=0;
            foreach($seleccionados->result() as $row):
                $AtribSelec[$i] = $row->codigoAtributo;
                $i++;
            endforeach;

            $unicosSeleccionados = array_unique($AtribSelec);
            $k=0;
            for ($k=0;$k<sizeof($unicosSeleccionados);$k++)
            {
                $datos['seleccionados'.$k] = $unicosSeleccionados[$k];
            }
            $datos['valor'] =  sizeof($unicosSeleccionados);
        }
        else{$datos['valor']=0;}

        //print_r($datos['atributos']);
        //print_r($unicosSeleccionados);

        $this->load->view('tabs/tab7AsignarAtributos',$datos);

    }
    function guardarSubTipoRequisitoAtributo()
    {
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');
        $seleccionados = $this->input->post('seleccionados');
        $indice1 = $this->input->post('indiceSel');
        $defaultSelect = $this->input->post('defaultSelect');
        $indice2 = $this->input->post('indiceDefaultSelect');

        $i=0;
        $Selec = array();
        $Default = array();

        $Selec      = explode('+',$seleccionados);
        $Default    = explode('+',$defaultSelect);

        //print_r($Selec);
        //print_r($Default);

        //Elimino los que venian por "defecto" seleccionados...
        for($i=0;$i<$indice2;$i++)
            $this->modelo->eliminoSubTipoRequisitoAtributo($codigoSubTipoRequisito,$codigoTipoRequisito,$Default[$i]);

        //Inserto la configuración de seleccionados que hay
        for($i=0;$i<$indice1;$i++)
                $this->modelo->insertSubTipoRequisitoAtributo($codigoSubTipoRequisito,$codigoTipoRequisito,$Selec[$i]);

        echo json_encode(array("msj"=>"Guardado correctamente"));
    }
    function buscaSubTipoRequisito()
    {
        $datos['subTipoRequisito'] = $this->modelo->buscarSubTipoRequisito($this->input->post('tipoRequisito'))->result();
        $this->load->view( "Ingresar/selectsDialog",$datos );
    }
    function buscaSubTipoRequisito2()
    {
        $datos['subTipoRequisito2'] = $this->modelo->buscarSubTipoRequisito($this->input->post('tipoRequisito'))->result();
        $this->load->view( "Ingresar/selectsDialog2",$datos );
    }
    function buscaAtributosSeleccionados()
    {
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');
        $seleccionados = $this->modelo->consultaAtributosSeleccionados($codigoTipoRequisito,$codigoSubTipoRequisito);
        if($seleccionados->num_rows()>0):
            $datos['msj'] = '';
            //Por cada atributo asignado debo rescatar los valores asociados que tiene!!
            $select = $seleccionados->result();
            $i=0;
            foreach($select as $row):
                $j=0;
                $datos['codigoAtributo'.$i] = $row->codigoAtributo;
                $nombreAtributos = $this->modelo->buscarNombreAtributos2($row->codigoAtributo)->result();
                foreach($nombreAtributos as $row1):
                    $datos['nombreAtributo'.$i] = $row1->nombreAtributo;
                endforeach;
                $atributoValor = $this->modelo->buscaAtributoValor($row->codigoAtributo)->result();
                foreach($atributoValor as $row2):
                    $datos['codigoValor'.$i.$j] = $row2->codigoValor;
                    $nombreValor = $this->modelo->buscaNombreValor($row2->codigoValor)->result();
                    foreach ($nombreValor as $row3):
                        $datos['nombreValor'.$i.$j] = $row3->nombreValor;
                    endforeach;
                    $j++;
                endforeach;
                $datos['indice2'.$i] = $j;
                $i++;
            endforeach;
            $datos['indice1'] = $i;
        else:
            $datos['msj'] = "No posee Atributos Asignados";
        endif;
        $datos['seleccionados'] = $seleccionados->result();//Va el nombre y código de los atributos Seleccionados
        $this->load->view( "Ingresar/atributosValores",$datos );
    }
    function buscaAtributosSeleccionados2()
    {
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');
        $seleccionados = $this->modelo->consultaAtributosSeleccionados($codigoTipoRequisito,$codigoSubTipoRequisito);
        if($seleccionados->num_rows()>0):
            $datos['msj2'] = '';
            //Por cada atributo asignado debo rescatar los valores asociados que tiene!!
            $select = $seleccionados->result();
            $i=0;
            foreach($select as $row):
                $j=0;
                $datos['codigoAtributo2'.$i] = $row->codigoAtributo;
                $nombreAtributos = $this->modelo->buscarNombreAtributos2($row->codigoAtributo)->result();
                foreach($nombreAtributos as $row1):
                    $datos['nombreAtributo2'.$i] = $row1->nombreAtributo;
                endforeach;
                $atributoValor = $this->modelo->buscaAtributoValor($row->codigoAtributo)->result();
                foreach($atributoValor as $row2):
                    $datos['codigoValor2'.$i.$j] = $row2->codigoValor;
                    $nombreValor = $this->modelo->buscaNombreValor($row2->codigoValor)->result();
                    foreach ($nombreValor as $row3):
                        $datos['nombreValor2'.$i.$j] = $row3->nombreValor;
                    endforeach;
                    $j++;
                endforeach;
                $datos['indice22'.$i] = $j;
                $i++;
            endforeach;
            $datos['indice12'] = $i;
        else:
            $datos['msj2'] = "No posee Atributos Asignados";
        endif;
        $datos['seleccionados2'] = $seleccionados->result();//Va el nombre y código de los atributos Seleccionados
        $this->load->view( "Ingresar/atributosValores2",$datos );
    }
    function cargaDatosProyecto()
    {
        $codigoProyecto = $this->input->post('codigoProyecto');
        $datos['Proyecto'] = $this->modelo->buscarProyectos($codigoProyecto)->result();
        foreach ($datos['Proyecto'] as $row):
            $datos['jefeProyecto'] = $this->modelo->buscarEncargado($row->jefeProyecto)->result();
            $datos['estado'] = $this->modelo->buscaEstadosProyecto2($row->codigoEstadoProyecto)->result();
        endforeach;
        $this->load->view('Ingresar/cargaProyecto',$datos);
    }
    function buscaHijosOtroCreador(){
        $codigoRequisito = $this->input->post('codigoRequisito');
        $codigoUsuario = $this->session->userdata('username');
        $msj = 'no';
        if($this->modelo->buscaHijosOtroCreador($codigoRequisito,$codigoUsuario)->num_rows() > 0)
            $msj = 'si';
        echo json_encode(array("msj"=>$msj));
    }
    function eliminarRequisito()
    {
        $codigoRequisito = $this->input->post('codigoRequisito');
        $this->modelo->eliminarRequisito($codigoRequisito);
    }
    function cargaDatosRequisito()
    {
        $codigoRequisito = $this->input->post('codigoRequisito');
        $datos['requisito'] = $this->modelo->buscaRequisito($codigoRequisito)->result();
        $datos['estados2'] = $this->modelo->buscaEstadosRequisitos()->result();
        $datos['tipoRequisito2'] = $this->modelo->buscarTipoRequisito()->result();
        foreach($datos['requisito'] as $row):
            $datos['subTipoRequisito2'] = $this->modelo->buscarSubTipoRequisito($row->codigoTipoRequisito)->result();
            //con el tipoRequisito y el subTipoRequisito voy en busca de los valores de los atributos que contiene por defecto :)
            $atributoValor = $this->modelo->buscaRequisitoAtributoValor($row->codigoRequisito,$row->codigoProyecto,$row->version);
            //echo $atributoValor->num_rows();
            $atributoValor = $atributoValor->result();
            //print_r($atributoValor);
            $k=0;
            foreach($atributoValor as $row1):
                $datos['valoresDefault'.$k] = $this->modelo->buscaNombreValor($row1->codigoValor)->result();
                $datos['atributosDefault'.$k] = $this->modelo->buscarNombreAtributos2($row1->codigoAtributo)->result();
                //print_r($datos['valoresDefault'.$k]);
                $k++;
            endforeach;

            $seleccionados = $this->modelo->consultaAtributosSeleccionados($row->codigoTipoRequisito,$row->codigoSubTipoRequisito);
            //Por cada atributo asignado debo rescatar los valores asociados que tiene!!
            $select = $seleccionados->result();
            $i=0;
            foreach($select as $row):
                $j=0;
                $datos['codigoAtributo2'.$i] = $row->codigoAtributo;
                $nombreAtributos = $this->modelo->buscarNombreAtributos2($row->codigoAtributo)->result();
                foreach($nombreAtributos as $row1):
                    $datos['nombreAtributo2'.$i] = $row1->nombreAtributo;
                endforeach;
                $atributoValor = $this->modelo->buscaAtributoValor($row->codigoAtributo)->result();
                foreach($atributoValor as $row2):
                    $datos['codigoValor2'.$i.$j] = $row2->codigoValor;
                    $nombreValor = $this->modelo->buscaNombreValor($row2->codigoValor)->result();
                    foreach ($nombreValor as $row3):
                        $datos['nombreValor2'.$i.$j] = $row3->nombreValor;
                    endforeach;
                    $j++;
                endforeach;
                $datos['indice22'.$i] = $j;
                $i++;
            endforeach;
            $datos['indice12'] = $i;
            //$datos['seleccionados2'] = $seleccionados->result();//Va el nombre y código de los atributos Seleccionados
        endforeach;
        $this->load->view('Ingresar/cargaRequisito',$datos);
    }
    function editarRequerimiento()
    {
        $codigoProyecto = $this->input->post('codigoProyecto');
        $codigoRequisito = $this->input->post('codigoRequisito');
        $nombreRequisito = $this->input->post('nombreRequisito');
        $version = $this->input->post('version');
        $codigoSubTipoRequisito = $this->input->post('codigoSubTipoRequisito');
        $codigoTipoRequisito = $this->input->post('codigoTipoRequisito');
        $estado = $this->input->post('estado');
        $descripcion = $this->input->post('descripcion');
        $codigosValor = $this->input->post('codigosValor');
        $codigosAtributo = $this->input->post('codigosAtributo');
        $indice = $this->input->post('indiceFin');
        $indiceDefault = $this->input->post('indiceDefault');
        $valoresCargados = $this->input->post('valoresCargados');
        $atributosCargados = $this->input->post('atributosCargados');
        $this->modelo->editarRequerimiento($codigoRequisito,$version,$codigoSubTipoRequisito,
           $codigoTipoRequisito,$estado,$nombreRequisito,$descripcion);

        $i=0;
        $Atributos = array();
        $Valores = array();
        $AtributosCargardos2 = array();
        $ValoresCargardos2 = array();

        $Atributos = explode('+',$codigosAtributo);
        $Valores   = explode('+',$codigosValor);
        $AtributosCargardos2 = explode('+',$atributosCargados);
        $ValoresCargados2 = explode('+',$valoresCargados);

        for($i=0;$i<$indiceDefault;$i++)
        {
            $this->modelo->eliminaRequisitoAtributoValor($codigoRequisito,$codigoProyecto,$version,$AtributosCargardos2[$i],$ValoresCargados2[$i]);
        }
        for($i=0;$i<$indice;$i++)
        {
            $this->modelo->editaRequisitoAtributoValor($codigoRequisito,$codigoProyecto,$version,$Atributos[$i],$Valores[$i]);
        }
        /*
        $cantGrupos         =   $this->input->post('cantGrupos');
        $codigosGrupos      =   $this->input->post('codigosGrupos');
        $cantUsuarios       =   $this->input->post('cantUsuarios');
        $codigosUsuarios    =   $this->input->post('codigosUsuarios');
        $cantGruposPre      =   $this->input->post('cantGruposPre');
        $codiGruposPre      =   $this->input->post('codiGruposPre');
        $cantUsuariosPre    =   $this->input->post('cantUsuariosPre');
        $codiUsuariosPre    =   $this->input->post('codiUsuariosPre');
        
        if($cantGruposPre > 0):
        $CodigoGrupo = array();
            $CodigoGrupo = explode('+',$codiGruposPre);
            for($i=0;$i<$cantGruposPre;$i++)
                $this->modelo->eliminaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto,$version,$CodigoGrupo[$i]);
        endif;
        
        if($cantUsuariosPre > 0):
            $CodigoUsuario  = array();
            $CodigoUsuario = explode('+',$codiUsuariosPre);
            for($i=0;$i<$cantUsuariosPre;$i++)
                $this->modelo->eliminaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$CodigoUsuario[$i]);
        endif;

        if($cantGrupos > 0):
            $CodigoGrupo = array();
            $CodigoGrupo = explode('+',$codigosGrupos);
            $CodigoGrupo = array_unique($CodigoGrupo);
            $CodigoGrupo = array_values($CodigoGrupo);
            for($i=0;$i<sizeof($CodigoGrupo);$i++)
                $this->modelo->insertaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto,$version,$CodigoGrupo[$i]);
        else:
            //significa que se seleccionaron TODAS!
            $grupos = $this->modelo->buscaGrupos($codigoProyecto)->result();
            foreach($grupos as $row):
                $this->modelo->insertaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto,$version,$row->codigoGrupo);
            endforeach;
        endif;

        if($cantUsuarios > 0):
            $CodigoUsuario  = array();
            $CodigoUsuario = explode('+',$codigosUsuarios);
            $CodigoUsuario = array_unique($CodigoUsuario); //saco los valores únicos
            $CodigoUsuario = array_values($CodigoUsuario); //genero un nuevo ventor con valores únicos
            for($i=0;$i<sizeof($CodigoUsuario);$i++)
                $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$CodigoUsuario[$i]);
            //primero me debo buscar, si no estoy me agrego por defecto!
            if($this->modelo->buscaRequisitoVisibilidadUsuario2($codigoRequisito,$codigoProyecto,$version,$this->session->userdata('username'))->num_rows() == 0):
                $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$this->session->userdata('username'));
            endif;
        else:
            //significa que se seleccionaron TODAS!
            $usuarios = $this->modelo->buscarUsuarioGrupo($codigoProyecto)->result();
            foreach($usuarios as $row):
                $this->modelo->insertaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto,$version,$row->codigoUsuario);
            endforeach;
        endif;*/

        $cantDoc        =   $this->input->post('cantDoc');
        $codiDoc        =   $this->input->post('codiDoc');
        $rutaDoc        =   $this->input->post('rutaDoc');
        $descDoc        =   $this->input->post('descDoc');

        $contArchivo    =   $this->input->post('contArchivo');
        $urlsArchivo    =   $this->input->post('urlsArchivo');
        $descArchivo    =   $this->input->post('descArchivo');

        $cantDocPre     = $this->input->post('cantDocPre');
        $codiDocPre     = $this->input->post('codiDocPre');

        if($cantDocPre >0){ //elimino los archivos que hay por defecto!
            $codigoDoc = array();
            $codigoDoc = explode('+',$codiDocPre);
            for($i=0;$i<$cantDocPre; $i++):
                $this->modelo->eliminaDocumento($codigoDoc[$i],$codigoRequisito,$codigoProyecto,$version);
            endfor;
        }

        if($cantDoc >0){//se edito o se mantuvo la descripcion de los archivos existentes!
            $codigoDoc = array();
            $descripcionDoc = array();
            $rutasDoc = array();
            $codigoDoc = explode('+',$codiDoc);
            $rutasDoc = explode('+',$rutaDoc);
            $descripcionDoc = explode('+',$descDoc);
            for($i=0;$i<$cantDoc; $i++):
                $this->modelo->insertDocumento($codigoDoc[$i],$codigoRequisito,$codigoProyecto,$version,$rutasDoc[$i],$descripcionDoc[$i]);
            endfor;
        }
        if($contArchivo >0){//Se agregaron nuevos documentos
            $rutaArchivos = array();
            $descArchivos = array();
            $rutaArchivos = explode('+',$urlsArchivo);
            $descArchivos = explode('+',$descArchivo);
            for($i=0;$i<$contArchivo; $i++):
                $codigoDocumento = $this->generaRandom3();
                $this->modelo->insertDocumento($codigoDocumento,$codigoRequisito,$codigoProyecto,$version,$rutaArchivos[$i],$descArchivos[$i]);
            endfor;
        }
    
    }
    function editarNombreProyecto()
    {
        $nombre = $this->input->post('nombre');
        $codigoProyecto = $this->input->post('codigoProyecto');
        $this->modelo->editarNombreProyecto($nombre,$codigoProyecto);
    }
    function visibilidadRequisito()
    {
        $codigoProyecto = $this->input->post('codigoProyecto');
        $datos['gruposDisponibles'] = $this->modelo->buscaGrupos($codigoProyecto)->result();
        $usuarios = $this->modelo->buscarUsuarioGrupo($codigoProyecto); //tengo todos los codigos de usuarios!
        $i=0;
        foreach($usuarios->result() as $row):
            if($row->codigoUsuario != $this->session->userdata('username')) //solo capturo los distintos a mi, para no tenes que escogerme!
            {
                $datos['nombreUsuario'.$i] = $this->modelo->buscaNombre($row->codigoUsuario)->result();
                $datos['rol'.$i] = $this->modelo->buscaRol($row->codigoRol)->result();
                $i++;
            }
        endforeach;
        $datos['indice'] = $i;
        $this->load->view('Ingresar/visibilidadRequisito',$datos);
    }
    function divSubirArchivos()
    {
        $this->load->view('Ingresar/divSubirArchivos');
    }
    function subirArchivo()
    {
        if (!empty($_FILES)) {
            $tempFile = $_FILES['Filedata']['tmp_name'];
            $file_name = $_FILES['Filedata']['name'];
            $targetPath = realpath(APPPATH.'../'). $_REQUEST['folder'] . '/';
            $targetFile =  str_replace('//','/',$targetPath) . $file_name;
            if (move_uploaded_file($tempFile,$targetFile)){
                echo base_url().'uploads'.'/'.$file_name;
            }
        }
    }
    function cargaEditarProyectos()
    {
        $codigoProyecto = $this->input->post('codigoProyecto');
        $datos['datosProyecto'] = $this->modelo->buscarProyectos($codigoProyecto)->result();
        foreach($datos['datosProyecto'] as $row):
            $datos['nombreUsuario'] = $this->modelo->buscarEncargado($row->jefeProyecto)->result();
            $datos['estadoUsuario'] = $this->modelo->buscaEstadosProyecto2($row->codigoEstadoProyecto)->result();
        endforeach;

        $datos['usuarios'] = $this->modelo->buscaNoAdmin()->result(); //posibles nuevos usuarios!
        $datos['estados'] = $this->modelo->buscaEstadosProyecto()->result();
        
        $this->load->view('tabs/tab4Proyectos',$datos);
    }
    function guardarEditarProyecto(){
        $codigoProyecto = $this->input->post('codigoProyecto');
        $jefeDefault = $this->input->post('jefeDefault');
        $estadoDefault = $this->input->post('estadoDefault');
        $nombreProyecto = $this->input->post('nombreProyecto');
        $selectUsuarios = $this->input->post('selectUsuarios');
        $selectEstados  = $this->input->post('selectEstados');
        $descripcion = $this->input->post('descripcion');

        $this->modelo->updateProyecto($codigoProyecto,$jefeDefault,$estadoDefault,$nombreProyecto,$selectUsuarios,$selectEstados,$descripcion);
    }
    function cargaPermisosArchivos()
    {
        $codigoRequisito = $this->input->post('codigoRequisito');
        $codigoProyecto = $this->input->post('codigoProyecto');
        //Selecciono todos los grupos asignados!
        $codigoGrupos = $this->modelo->buscaRequisitoVisibilidadGrupo($codigoRequisito,$codigoProyecto);
        $datos['cantGrupos'] = $codigoGrupos->num_rows();
        $i=0;
        foreach($codigoGrupos->result() as $row):
            $datos['datosGrupos'.$i] = $this->modelo->buscaGrupos2($row->codigoGrupo)->result(); //cada uno lo debo recorrer con foreach!
            $i++;
        endforeach;
        //Selecciono todos los usuarios asignados
        $codigoUsuarios = $this->modelo->buscaRequisitoVisibilidadUsuario($codigoRequisito,$codigoProyecto);
        $datos['cantUsuarios'] = $codigoUsuarios->num_rows();
        
        $i=0;
        foreach($codigoUsuarios->result() as $row):
            $datos['datosUsuarios'.$i] = $this->modelo->buscaNombre($row->codigoUsuario)->result(); //cada uno lo debo recorrer con foreach!
            $codigoRol =$this->modelo->buscarCodigoProyectos2($row->codigoUsuario,$codigoProyecto);//tengo el codigo rol del usuario especifico!
            
            foreach($codigoRol->result() as $row1):
                $datos['datosRoles'.$i] = $this->modelo->buscaRol($row1->codigoRol)->result(); //tengo los datos del rol del usuario especifico!
            endforeach;
            $i++;
        endforeach;
        //Selecciono los archivos almacenados!
        $Documentos = $this->modelo->buscaDocumentos($codigoRequisito);
        $datos['cantDocumentos'] = $Documentos->num_rows();
        $datos['datosDocumentos'] = $Documentos->result();
        //Carga de los datos Generales

        $datos['gruposDisponibles'] = $this->modelo->buscaGrupos($codigoProyecto)->result();
        $usuarios = $this->modelo->buscarUsuarioGrupo($codigoProyecto); //tengo todos los codigos de usuarios!
        $i=0;
        foreach($usuarios->result() as $row):
            if($row->codigoUsuario != $this->session->userdata('username')) //solo capturo los distintos a mi, para no tenes que escogerme!
            {
                $datos['nombreUsuario'.$i] = $this->modelo->buscaNombre($row->codigoUsuario)->result();
                $datos['rol'.$i] = $this->modelo->buscaRol($row->codigoRol)->result();
                $i++;
            }
        endforeach;
        $datos['indice'] = $i;

        $this->load->view('Ingresar/permisosArchivos',$datos);
    }
    function cargaDocumentos()
    {
        if($this->session->userdata('logged_in')==TRUE):
        $codigoProyecto = $this->input->post('codigoProyecto');
            $documentos=$this->modelo->buscaDocumentos2($codigoProyecto);
            $datos['cantDocumentos'] = $documentos->num_rows();
            $datos['documentos']= $documentos->result();
            $this->load->view('Ingresar/Documentos',$datos);
        endif;
    }
    function cargaReportes()
    {
        if($this->session->userdata('logged_in')==TRUE):
            $this->load->view('Ingresar/Reportes');
        endif;
    }
    function evaluaPermisos()
    {
        $codigoRequisito = $this->input->post('codigoRequisito');
        $codigoProyecto = $this->input->post('codigoProyecto');
        $codigoUsuario = $this->session->userdata('username');
        $msj='si';
        $aux=0;
        $usuarioGrupo = $this->modelo->buscarCodigoProyectos2($codigoUsuario,$codigoProyecto)->result();
        foreach($usuarioGrupo as $row):
            $codigoRol = $row->codigoRol;
            $codigoGrupo = $row->codigoGrupo;
        endforeach;

        if($codigoRol == 1) // es jefe del proyecto!
            $msj='si';
        else
            if($this->modelo->buscarGruposPermitidos($codigoProyecto,$codigoRequisito,$codigoGrupo)->num_rows() > 0  || $this->modelo->buscarUsuariosPermitidos($codigoProyecto,$codigoRequisito,$codigoUsuario)->num_rows() > 0 )
              $msj='si';
            else
                $msj='no';
        echo json_encode(array('msj'=>$msj));
    }
}